#include <stdio.h>
#include <stdbool.h>
char data[4][4];
char last[4][4];
int e=0;
int js=1;

bool judg(int x,int y,char i)
{
    int l=x/2*2;
    int r=y/2*2;
    if(data[l][r]==i||data[l+1][r+1]==i||data[l][r+1]==i||data[l+1][r]==i)
        return false;
    for(int j=0;j<4;j++)
    {
        if(data[x][j]==i)
            return false;
        if(data[j][y]==i)
            return false;
    }
    return true;
}

void copy(char x[][4],char y[][4])
{
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
            x[i][j]=y[i][j];
        }
    }
}


void selve(int l,int r)
{
    if(r==4)
    {
        r=0;
        l++;
    }
    if(l==4)
    {
        copy(last,data);
        e=1;
    }
    if(e)
        return;

            if(data[l][r]=='*') {
                for (int t = 1; t < 5; t++) {
                    if (judg(l, r, (char) ('0' + t))) {
                        char temp[4][4];
                        copy(temp, data);
                        data[l][r] = (char) ('0' + t);
                        selve(l,r+1);
                        if(e)
                            return;
                        copy(data, temp);
                    }
                }
            }
    selve(l,r+1);
}


int main(void) {
    int n;
    scanf("%d",&n);
    while(n--)
    {
        e=0;
        scanf("%*c");
        for(int i=0;i<4;i++)
        {
            for(int j=0;j<4;j++)
            {
                scanf("%c",&data[i][j]);
            }
            scanf("%*c");
        }
        selve(0,0);
        printf("Case #%d:\n",js++);
        for(int i=0;i<4;i++)
        {
            for(int j=0;j<4;j++)
            {
                printf("%c",last[i][j]);
            }
            printf("\n");
        }
        printf("\n");
    }
    return 0;
}
